/**
 * Created by L.jp
 * Description:
 * User: 86189
 * Date: 2021-10-17
 * Time: 14:48
 */
public class Judge {
    public int findJudge(int n, int[][] trust) {
        // 定义数组用于存放每个人的信任值
        int[] trustValues = new int[n + 1]; // 人员编号从1开始，这里+1防止后续计算麻烦，元素初始值为0
        // 遍历trust数组计算每个人的信任值
        for (int[] t : trust) {
            trustValues[t[0]]--;//二维数组左边元素是法官的话，说明不被信任，直接--
            trustValues[t[1]]++;//被信任，就++；
        }

        // 遍历这n个人的信任值，如果存在 n - 1，则返回这个人的编号
        for (int i = 1; i <= n; i++) {
            if (trustValues[i] == (n - 1)) return i;
        }
        return -1;
    }
}
